rem --------------------------------------------------------------------------
rem файл предназначен для создания windows дистрибутива проекта WebFormsQA
rem --------------------------------------------------------------------------
set HOST_SVN_NAME=www.scale-tech.ru
set PROJECT_NAME=WebFormsQA


set WORK_DIR=%PROJECT_NAME%
set PROJECT_ADDR=http://%HOST_SVN_NAME%/svn/WebFormsQA/trunk
set PROJECT_TOOLS_ADDR=http://%HOST_SVN_NAME%/svn/tools/trunk/windows
set TMP_TOOLS=tmp\tools
set DOXYGEN=doxygen
set GRAPHVIZ=Graphviz
set NSIS=NSIS


set WEB_DIR=WebServers
set HOST_PATH=%WEB_DIR%\home\localhost\www\%WORK_DIR%

rem распаковываю консольного svn клиента
7zip\7z.exe x svn.7z

rem в случае наличия в текущей папке каталога WEB_DIR, удаляю его
rmdir /S /Q %WEB_DIR%

rem загружаю архивы со следющими утилитами Doxygen-версии 1.7.5.1, Graphviz версии 2.28.0 и NSIS 2 - версии 2.21
mkdir %TMP_TOOLS%
svn\svn.exe co %PROJECT_TOOLS_ADDR% %TMP_TOOLS%

rem распаковка пакета "Денвер", версия установленного дистрибутива "Denwer3_Base_2010-03-18_a2.2.4_p5.3.1_m5.1.40_pma3.2.3.exe"
rem виртуальный диск создается и подключается после запуска файла "WebServers\denwer\Run.exe"
rem виртуальный диск имеет букву Z: см. "WebServers\denwer\CONFIGURATION.txt"
7zip\7z.exe x %WEB_DIR%.7z
7zip\7z.exe x %TMP_TOOLS%\%DOXYGEN%.7z
7zip\7z.exe x %TMP_TOOLS%\%GRAPHVIZ%.7z
7zip\7z.exe x %TMP_TOOLS%\%NSIS%.7z

mkdir %HOST_PATH%
rem необходимо ввести имя пользователя и пароль
svn\svn.exe co %PROJECT_ADDR% %HOST_PATH%



rem ########################################################################
rem           блок поиска номера версии и номера сборки
rem ########################################################################

@echo OFF
set TMP_FILE=tmp.txt
set FILE_VERSION=..\..\doc\doxygen\toc.h
set FILE_VERSION_ORIG=..\..\doc\doxygen\toc-orig.h
set STR=@version.*Release
set STRSVN=Revision:
set VER_FOR_NSIS=version.nsh

rem получаю Major и Minor номера версий, назначаемых вручную
findstr "%STR%"  %FILE_VERSION%  >  %TMP_FILE%

rem беру второе поле, которое и будет номер Major.Minor
FOR /F "usebackq tokens=2 delims= " %%A IN (%TMP_FILE%) DO ( 
    set NUM_VERSION=%%A
)


rem номер сборки из svn
svn\svn.exe info | findstr "%STRSVN%"  >  %TMP_FILE%
FOR /F "usebackq tokens=2 delims= " %%A IN (%TMP_FILE%) DO ( 
    set NUM_REVISION=%%A
)


rem номер версии 
echo !define FULL_VERSION %NUM_VERSION%.%NUM_REVISION%  > %VER_FOR_NSIS%



rem ########################################################################
rem           блок вставки номера полной версии перед кодогенерацией
rem ########################################################################

setLocal EnableDelayedExpansion
del %TMP_FILE%
copy /Y %FILE_VERSION%  %FILE_VERSION_ORIG%


for /f "tokens=* delims=" %%a in (%FILE_VERSION%) do (
    set str=%%a
    set str=!str:@version %NUM_VERSION% Release=@version %NUM_VERSION%.%NUM_REVISION%!
    echo !str! >> %TMP_FILE%
)

copy /Y %TMP_FILE%  %FILE_VERSION%





rem ########################################################################
rem           блок генерации документации и создания дистрибутива
rem ########################################################################

rem %~d1  - разворачивает %1 в букву диска
rem %~p1  - разворачивает %1 в путь
rem %~dp1 - разворачивает %1 в букву диска и путь
rem пример %~dp0 - каталог из которого скрипт был запущен
cd ..\..\doc
"..\distrib\windows\doxygen\bin\doxygen.exe" Doxyfile



rem копирую созданную документацию в подготавливаемый дистрибутив
move /Y html ..\distrib\windows\%HOST_PATH%\doc\html
cd ..\distrib\windows
"%NSIS%\makensis.exe" %PROJECT_NAME%.nsi





copy /Y %FILE_VERSION_ORIG%  %FILE_VERSION%
del %TMP_FILE%
